package com.originskyseed.platform.user.service;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

import com.originskyseed.platform.core.base.BasePage;
import com.originskyseed.platform.user.model.Player;
import com.originskyseed.platform.user.model.PlayerRelateRecharge;
import com.originskyseed.platform.user.model.RankingListVO;
import com.originskyseed.platform.user.model.TaskSelectPlayerVO;
import com.originskyseed.platform.user.model.UserInfo;

/**
 * 玩家信息表Service接口类（OSI_PLAYER）
 *
 * @author wlj
 */
public interface IPlayerService {

	/**
	 * 删除记录
	 *
	 * @param id
	 * @return
	 * @throws Exception
	 */
	public int deleteByPrimaryKey(String id) throws Exception;

	/**
	 * 批量删除记录
	 *
	 * @param ids
	 * @return
	 * @throws Exception
	 */
	public int deleteByPrimaryKeys(List<String> ids) throws Exception;

	/**
	 * 插入记录
	 *
	 * @param record
	 * @return
	 * @throws Exception
	 */
	public int insert(Player record) throws Exception;

	/**
	 * 插入记录（仅非空值字段）
	 *
	 * @param record
	 * @return
	 * @throws Exception
	 */
	public int insertSelective(Player record) throws Exception;

	/**
	 * 更新记录
	 *
	 * @param record
	 * @return
	 * @throws Exception
	 */
	public int updateByPrimaryKey(Player record) throws Exception;

	/**
	 * 更新记录（仅非空值字段）
	 *
	 * @param record
	 * @return
	 * @throws Exception
	 */
	public int updateByPrimaryKeySelective(Player record) throws Exception;


	/**
	 * 更新记录（仅非空值字段）
	 *
	 * @param record
	 * @return
	 * @throws Exception
	 */
	public int updateByPrimaryKeySelective(String tenantCode,Player record) throws Exception;


	/**
	 * 更新记录（仅非空值字段）
	 *
	 * @param tenantCode
	 * @return
	 * @throws Exception
	 */
	public int updateByPrimaryKeySelectiveByTenantCode(String tenantCode,List<PlayerRelateRecharge> playerRelateRechargeList) throws Exception;

	/**
	 * 玩家是否在线
	 *
	 * @param list
	 * @return
	 * @throws Exception
	 */
	public int updatePlayerIsOnLineByList(List<String> list) throws Exception;

	/**
	 * 玩家是否在线
	 *
	 * @param playerList
	 * @return
	 * @throws Exception
	 */
	public int updatePlayerIsOnLineByListTenantCode(String tenantCode,List<Player> playerList) throws Exception;

	/**
	 * 查询记录
	 *
	 * @param id
	 * @return
	 * @throws Exception
	 */
	public Player selectByPrimaryKey(String id) throws Exception;

	/**
	 * 查询记录,根据玩家id
	 *
	 * @param playerId
	 * @return
	 * @throws Exception
	 */
	public Player selectByPlayerId(String playerId) throws Exception;


	/**
	 * 查询记录,根据玩家id
	 *
	 * @param playerId
	 * @return
	 * @throws Exception
	 */
	public Player selectByPlayerId(String tenantCode,String playerId) throws Exception;

	/**
	 * 查询列表
	 *
	 * @param record
	 * @return
	 * @throws Exception
	 */
	public List<Player> selectList(Player record) throws Exception;

	/**
	 * 查询列表
	 *
	 * @param record
	 * @return
	 * @throws Exception
	 */
	public List<Player> selectListTenantCode(Player record,String tenantCode) throws Exception;


	/**
	 * 查询金额,根据子渠道id
	 *
	 * @param
	 * @return
	 * @throws Exception
	 */
	public BigDecimal selectAmountByChannelSubId(String tenantCode,String channelSubId) throws Exception;

	/**
	 * 分页查询列表
	 *
	 * @param params
	 * @param page
	 * @return
	 * @throws Exception
	 */
	public BasePage<Player> selectPlayerListByPageByTenantCode(String tenantCode,Map<String, Object> params, BasePage<Player> page) throws Exception;
	/**
	 * 分页查询列表
	 *
	 * @param params
	 * @param page
	 * @return
	 * @throws Exception
	 */
	public BasePage<Player> selectListByPage(Map<String, Object> params, BasePage<Player> page) throws Exception;

	/**
	 * 查询玩家
	 *
	 * @param params
	 * @return
	 * @throws Exception
	 */
	public BasePage<TaskSelectPlayerVO> taskSelectPlayerToSalerListByPage(Map<String, Object> params, BasePage<TaskSelectPlayerVO> page, UserInfo userInfo) throws Exception;

	/**
	 * 查询玩家
	 *
	 * @param params
	 * @return
	 * @throws Exception
	 */
	public BasePage<TaskSelectPlayerVO> taskSelectPlayerToAnchorListByPage(Map<String, Object> params, BasePage<TaskSelectPlayerVO> page) throws Exception;

	/**
	 * 玩家注册信息_分页查询列表
	 *
	 * @param params
	 * @param page
	 * @return
	 * @throws Exception
	 */
	public BasePage<Player> selectLoginListByPage(Map<String, Object> params, BasePage<Player> page) throws Exception;

	/**
	 * 导出玩家注册信息
	 *
	 * @param params
	 * @return
	 * @throws Exception
	 */
	public List<Player> selectLoginListToExcel(Map<String, Object> params) throws Exception;

	/**
	 * 推广平台_业务员_玩家信息分页查询
	 *
	 * @param params
	 * @return
	 * @throws Exception
	 */
	public BasePage<Player> selectPlayerListByPage(Map<String, Object> params, BasePage<Player> page, UserInfo userInfo) throws Exception;

	/**
	 * 内容平台_主播_玩家信息分页查询
	 *
	 * @param params
	 * @return
	 * @throws Exception
	 */
	public BasePage<Player> selectPlayerListToAnchorByPage(Map<String, Object> params, BasePage<Player> page, UserInfo userInfo) throws Exception;

	/**
	 * 内容平台_OW_玩家信息分页查询
	 *
	 * @param params
	 * @return
	 * @throws Exception
	 */
	public BasePage<Player> selectPlayerListToOWByPage(Map<String, Object> params, BasePage<Player> page, UserInfo userInfo) throws Exception;

	/**
	 * 查询访问玩家的数量
	 *
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public Integer pkSelectAnchorVisitsNumber(Map<String, Object> map, String tenantCode) throws Exception;

	/**
	 * 查询访问玩家的数量
	 *
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public Integer pkSelectAnchorVisitsNumber(Map<String, Object> map) throws Exception;

	/**
	 * 查询主播直播装换率
	 *
	 * @param anchorId
	 * @return
	 * @throws Exception
	 */
	public BigDecimal selectLiveRateByAnchorId(String anchorId, String tenantCode) throws Exception;

	/**
	 * 查询主播直播装换率
	 *
	 * @param anchorId
	 * @return
	 * @throws Exception
	 */
	public BigDecimal selectLiveRateByAnchorId(String anchorId) throws Exception;

	/**
	 * 查询优质用户数
	 *
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public Integer pkSelectHighQualityUserCount(Map<String, Object> map, String tenantCode) throws Exception;

	/**
	 * 查询优质用户数量总数
	 *
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public Integer selectHighQualityUserCount(Map<String, Object> map) throws Exception;

	/**
	 * 查询主播心动用户
	 *
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public Integer selectHeartbeatCount(Map<String, Object> map, String tenantCode) throws Exception;

	/**
	 * 查询pk主播心动用户
	 *
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public Integer pkSelectHeartbeatCount(Map<String, Object> map, String tenantCode) throws Exception;

	/**
	 * 查询pk主播心动用户
	 *
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public Integer pkSelectHeartbeatCount(Map<String, Object> map) throws Exception;

	/**
	 * pk查询新充总额
	 *
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public BigDecimal pkSelectNewChargeAmountSum(Map<String, Object> map) throws Exception;

	/**
	 * pk查询新充总额
	 *
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public BigDecimal pkSelectNewChargeAmountSum(Map<String, Object> map, String tenantCode) throws Exception;

	/**
	 * 查询潜力用户数
	 *
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public Integer pkSelectPotentialUsersCount(Map<String, Object> map, String tenantCode) throws Exception;

	/**
	 * 查询潜力用户数
	 *
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public Integer pkSelectPotentialUsersCount(Map<String, Object> map) throws Exception;

	/**
	 * 推广查询新充总额（定时任务）
	 *
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public BigDecimal selectNewChargeAmountSumTenantCode(Map<String, Object> map, String tenantCode) throws Exception;

	/**
	 * 业务员_私域用户流量池列表
	 *
	 * @param params
	 * @return
	 * @throws Exception
	 */
	public BasePage<Player> selectPlayerPlowPoolListByPage(Map<String, Object> params, BasePage<Player> page) throws Exception;

	/**
	 * 业务员_公域域用户流量池列表
	 *
	 * @param params
	 * @return
	 * @throws Exception
	 */
	public BasePage<Player> selectPlayerPublicPlowPoolListByPage(Map<String, Object> params, BasePage<Player> page, UserInfo userInfo) throws Exception;

	/**
	 * 主播_公域用户流量池列表
	 *
	 * @param params
	 * @return
	 * @throws Exception
	 */
	public BasePage<Player> selectPlayerPlowPoolListToAnchorByPage(Map<String, Object> params, BasePage<Player> page, UserInfo userInfo) throws Exception;

	/**
	 * 根据业务员Id查询公会Id
	 *
	 * @param id
	 * @return
	 * @throws Exception
	 */
	public Player selectTradeBybelongBusinessId(String id) throws Exception;

	/**
	 * 查询玩家id是否存在
	 *
	 * @param playerIds
	 * @return
	 * @throws Exception
	 */
	public List<String> selectPlayerIds(List<String> playerIds) throws Exception;


	/**
	 * 查询玩家id是否存在
	 *
	 * @param playerIds
	 * @return
	 * @throws Exception
	 */
	public List<String> selectPlayerIds(String tenantCode,List<String> playerIds) throws Exception;

	/**
	 * 根据player查询玩家信息
	 *
	 * @param player
	 * @return
	 * @throws Exception
	 */
	public Player selectPlayerByPlayer(Player player) throws Exception;

	/**
	 * 批量插入记录
	 *
	 * @param list
	 * @return
	 * @throws Exception
	 */
	public int insertBatch(List<Player> list) throws Exception;


	/**
	 * 批量插入记录
	 *
	 * @param list
	 * @return
	 * @throws Exception
	 */
	public int insertBatch(String tenantCode,List<Player> list) throws Exception;

	/**
	 * 分页查询用户明细信息列表
	 *
	 * @param params
	 * @param page
	 * @return
	 * @throws Exception
	 */
	public BasePage<Player> selectUserDetailsByPage(Map<String, Object> params, BasePage<Player> page) throws Exception;

	/**
	 * 分页查询优质用户列表
	 *
	 * @param params
	 * @param page
	 * @return
	 * @throws Exception
	 */
	public BasePage<Player> selectHighQualityUserByPage(Map<String, Object> params, BasePage<Player> page) throws Exception;

	/**
	 * 分页查询活跃登录用户列表
	 *
	 * @param params
	 * @param page
	 * @return
	 * @throws Exception
	 */
	public BasePage<Player> selectActiveLoginUserByPage(Map<String, Object> params, BasePage<Player> page) throws Exception;

	/**
	 * 查询设备数量
	 *
	 * @param list
	 * @return
	 * @throws Exception
	 */
	public Integer selectEquipmentNum(List<String> list) throws Exception;

	/**
	 * 查询新用户充值金额
	 *
	 * @param list
	 * @return
	 * @throws Exception
	 */
	public BigDecimal selectNewUserRechargeAmount(List<String> list) throws Exception;

	/**
	 * 查询新用户充值金额
	 *
	 * @param list
	 * @return
	 * @throws Exception
	 */
	public BigDecimal selectContentNewUserRechargeAmount(List<String> list) throws Exception;

	/**
	 * 查询优质用户数量
	 *
	 * @param list
	 * @return
	 * @throws Exception
	 */
	public Integer selectHighQualityUserNum(List<String> list) throws Exception;

	/**
	 * 查询内容优质用户数量
	 *
	 * @param list
	 * @return
	 * @throws Exception
	 */
	public Integer selectContentHighQualityUserNum(List<String> list) throws Exception;

	/**
	 * 查询充值用户数量
	 *
	 * @param list
	 * @return
	 * @throws Exception
	 */
	public Integer selectRechargeUserNum(List<String> list) throws Exception;

	/**
	 * 查询内容消费充值用户数量
	 *
	 * @param list
	 * @return
	 * @throws Exception
	 */
	public Integer selectContentRechargeUserNum(List<String> list) throws Exception;

	/**
	 * 查询充值用户数量
	 *
	 * @param list
	 * @return
	 * @throws Exception
	 */
	public BigDecimal selectRechargeUserAmount(List<String> list) throws Exception;

	/**
	 * 查询内容累计充值额度
	 *
	 * @param list
	 * @return
	 * @throws Exception
	 */
	public BigDecimal selectContentRechargeUserAmount(List<String> list) throws Exception;

	/**
	 * 查询成本和毛利和净利润
	 *
	 * @param list       用户集合
	 * @param type       0 日 1 周 2 月 3 季 4 年
	 * @param selectType 0查询推广类，1查询内容类
	 * @return
	 * @throws Exception
	 */
	public Map<String, Object> selectBasePayAndGrossProfit(List<String> userIdList,List<String> list, int type, int selectType) throws Exception;

	/**
	 * 查询LTV
	 *
	 * @param list       用户集合
	 * @param selectType 0查询推广类，1查询内容类
	 * @return
	 * @throws Exception
	 */
	public Map<String, Object> selectUserLtv(List<String> list, int selectType) throws Exception;

	/**
	 * 查询利润明细
	 *
	 * @param date       日期
	 * @param list       用户集合
	 * @param selectType 0查询推广类，1查询内容类
	 * @return
	 * @throws Exception
	 */
	public Map<String, Object> selectProfitDetails(String date,List<String> userIdList, List<String> list, int selectType) throws Exception;

	/**
	 * 查询营收值
	 *
	 * @param type
	 * @param list
	 * @param selectType 0查询推广类，1查询内容类
	 * @return
	 * @throws Exception
	 */
	public BigDecimal selectRevenueValue(Integer type, List<String> list, Integer selectType) throws Exception;

	/**
	 * 查询优质用户
	 *
	 * @param list
	 * @param selectType 0查询推广类，1查询内容类
	 * @return
	 * @throws Exception
	 */
	public Map<String, Object> selectHighQualityUsers(List<String> list, Integer selectType) throws Exception;

	/**
	 * 查询优质用户
	 *
	 * @param list
	 * @param selectType 0查询推广类，1查询内容类
	 * @return
	 * @throws Exception
	 */
	public Map<String, Object> selectHighQualityUsers(int type,List<String> list, Integer selectType) throws Exception;

	/**
	 * 查询新充金额 , 或者累充金额
	 *
	 * @param type       0 日 1 周 2 月
	 * @param list
	 * @param queryType  0 新充金额 1 累充金额
	 * @param selectType 0查询推广类，1查询内容类
	 * @return
	 * @throws Exception
	 */
	public Map<String, Object> selectNewChargeAmount(int type, List<String> list, int queryType, int selectType) throws Exception;

	/**
	 * 查询充值分析
	 *
	 * @param type       0 日 1 周 2 月
	 * @param list
	 * @param selectType 0查询推广类，1查询内容类
	 * @return
	 * @throws Exception
	 */
	public Map<String, Object> selectRechargeAnalysis(int type, List<String> list, int selectType) throws Exception;

	/**
	 * 查询任务发布数量
	 *
	 * @param list
	 * @return
	 * @throws Exception
	 */
	public Integer selectTaskReleaseNums(List<String> list) throws Exception;

	/**
	 * 查询派单任务
	 *
	 * @param type 0 日 1 周 2 月
	 * @param list
	 * @return
	 * @throws Exception
	 */
	public Map<String, Object> selectAssignmentTask(int type, List<String> list) throws Exception;

	/**
	 * 查询业务员数量
	 *
	 * @param type 0 日 1 周 2 月 3 季 4 年
	 * @param list
	 * @return
	 * @throws Exception
	 */
	public Map<String, Object> selectSalesmenNumber(int type, List<String> list) throws Exception;

	/**
	 * 查询业务员数量明细
	 *
	 * @param date
	 * @param list
	 * @return
	 * @throws Exception
	 */
	public Map<String, Object> selectSalesmenDetailed(String date, List<String> list) throws Exception;


	/**
	 * 查询主播数量
	 *
	 * @param type 0 日 1 周 2 月 3 季 4 年
	 * @param list
	 * @return
	 * @throws Exception
	 */
	public Map<String, Object> selectAnchorNumber(int type, List<String> list) throws Exception;

	/**
	 * 查询主播数量明细
	 *
	 * @param date
	 * @param list
	 * @return
	 * @throws Exception
	 */
	public Map<String, Object> selectAnchorDetailed(String date, List<String> list) throws Exception;

	/**
	 * 查询新增设备数量、新用户充值数、优质用户数、充值用户、累计充值额度
	 *
	 * @param type       0 日 1 周 2 月 3 季 4 年
	 * @param list
	 * @param selectType 0 新增设备数量 1 新用户充值数 2 优质用户数 3 充值用户 4 累计充值额度
	 * @return
	 * @throws Exception
	 */
	public Map<String, Object> selectAddEquipmentNumber(int type, List<String> list, int selectType) throws Exception;

	/**
	 * 查询新增设备数量明细
	 *
	 * @param date
	 * @param list
	 * @return
	 * @throws Exception
	 */
	public Map<String, Object> selectAddEquipmentNumberDetailed(String date, List<String> list, int selectType) throws Exception;

	/**
	 * 查询公会任务汇总
	 *
	 * @param list
	 * @return
	 * @throws Exception
	 */
	public Map<String, Object> selectTaskSummary(List<String> list) throws Exception;

	/**
	 * 查询业务员逾期情况
	 *
	 * @param type
	 * @param list
	 * @return
	 * @throws Exception
	 */
	public List<Map<String, Object>> selectSalesmanOverdue(int type, List<String> list) throws Exception;

	/**
	 * 查询累计充值额度,根据时间查询
	 *
	 * @param type
	 * @param list
	 * @return
	 * @throws Exception
	 */
	public BigDecimal selectRechargeUserAmountByDate(int type, List<String> list) throws Exception;

	/**
	 * 查询用户充值信息
	 *
	 * @param type 0 日 1 周 2 月
	 * @param list
	 * @return
	 * @throws Exception
	 */
	public Map<String, Object> selectUserRechargeStatistics(int type, List<String> list, int selectType) throws Exception;

	/**
	 * 分页查询潜力用户
	 *
	 * @param params
	 * @param page
	 * @return
	 * @throws Exception
	 */
	public BasePage<Map<String, Object>> selectPotentialUsersByPage(Map<String, Object> params, BasePage<Map<String, Object>> page) throws Exception;

	/**
	 * 分页查询优质用户
	 *
	 * @param params
	 * @param page
	 * @return
	 * @throws Exception
	 */
	public BasePage<Map<String, Object>> selectHighQualityUsersByPage(Map<String, Object> params, BasePage<Map<String, Object>> page) throws Exception;

	/**
	 * 分页查询私域流量池用户
	 *
	 * @param params
	 * @param page
	 * @return
	 * @throws Exception
	 */
	public BasePage<Map<String, Object>> selectFlowPoolUsersByPage(Map<String, Object> params, BasePage<Map<String, Object>> page) throws Exception;

	/**
	 * 查询工会用户
	 *
	 * @param list
	 * @return
	 * @throws Exception
	 */
	public Map<String, Object> selectUnionUsers(List<String> list) throws Exception;

	/**
	 * 查询业务员排行榜
	 *
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public List<Map<String, Object>> selectSalesmanRanking(Map<String, Object> map) throws Exception;

	/**
	 * 查询新增注册用户统计
	 *
	 * @param list 业务员id集合
	 * @param type 类型 0-日 1-周 2-月
	 * @return
	 * @throws Exception
	 */
	public Map<String, Object> selectNewRegisteredUsers(List<String> list, int type) throws Exception;

	/**
	 * 查询我的任务
	 *
	 * @param userId
	 * @return
	 * @throws Exception
	 */
	public Map<String, Object> selectMyMission(String userId) throws Exception;

	/**
	 * 查询任务统计
	 *
	 * @param list
	 * @return
	 * @throws Exception
	 */
	public Map<String, Object> selectMyMissionByUserIds(List<String> list) throws Exception;

	/**
	 * 查询累计充值额度总数
	 *
	 * @param list
	 * @param type
	 * @return
	 * @throws Exception
	 */
	public BigDecimal selectTiredAndFullCount(List<String> list, int type, int selectType) throws Exception;

	/**
	 * 查询累计充值额度总数
	 *
	 * @param userId
	 * @param startTime
	 * @param endTime
	 * @return
	 * @throws Exception
	 */
	public BigDecimal selectTiredAndFullCount(String userId, String startTime, String endTime) throws Exception;

	/**
	 * 查询业务员下的当天新增注册玩家和有效玩家玩家
	 *
	 * @param userId
	 * @return
	 * @throws Exception
	 */
	public Map<String, Object> selectSalesmanPlayerNumber(String userId) throws Exception;

	/**
	 * 查询优质用户数
	 *
	 * @param userId
	 * @return
	 * @throws Exception
	 */
	public Integer selectHighQualityUsersNumber(String userId) throws Exception;

	/**
	 * 查询优质用户数
	 *
	 * @param userId
	 * @return
	 * @throws Exception
	 */
	public Integer selectTodayRegisterNumber(String userId) throws Exception;

	/**
	 * 查询任务数量
	 *
	 * @param userId
	 * @return
	 * @throws Exception
	 */
	public Map<String, Object> selectTaskNumber(String userId) throws Exception;

	/**
	 * 查询排行第几
	 *
	 * @param userId
	 * @return
	 * @throws Exception
	 */
	public Integer selectRankingByCount(String userId, List<String> list) throws Exception;

	/**
	 * 查询维护任务和推广任务的对象
	 *
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public List<String> selectPromotionTaskMaintenanceTask(Map<String, Object> map) throws Exception;

	/**
	 * 查询充值玩家的数量
	 *
	 * @param anchorId
	 * @return
	 * @throws Exception
	 */
	public Integer selectRechargePlayerNumber(String anchorId) throws Exception;

	/**
	 * 查询访问玩家的数量
	 *
	 * @param anchorId
	 * @return
	 * @throws Exception
	 */
	public Integer selectVisitPlayerNumber(String anchorId) throws Exception;

	/**
	 * 查询主播的收益
	 *
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public BigDecimal selectAnchorProfit(Map<String, Object> map) throws Exception;

	/**
	 * 查询优质主播排行
	 *
	 * @return
	 * @throws Exception
	 */
	public List<RankingListVO> selectQualityAnchorRanking(Map<String, Object> map) throws Exception;

	/**
	 * 查询工会排行
	 *
	 * @return
	 * @throws Exception
	 */
	public List<RankingListVO> selectLabourUnionRanking(List<String> list) throws Exception;

	/**
	 * 房间曝光量
	 *
	 * @return
	 * @throws Exception
	 */
	public Map<String, Object> selectVisitsNumber(int type, List<String> list) throws Exception;

	/**
	 * 查询公会用户消费TOP榜
	 *
	 * @return
	 * @throws Exception
	 */
	public List<RankingListVO> selectConsumptionRanking(Map<String, Object> map) throws Exception;

	/**
	 * 查询访问用户数
	 *
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public Integer selectVisitsNumberByTime(Map<String, Object> map) throws Exception;

	/**
	 * 查询充值用户数
	 *
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public Integer selectConsumeUserNum(Map<String, Object> map) throws Exception;

	/**
	 * 分页查询主播转换率
	 *
	 * @param params
	 * @param page
	 * @return
	 * @throws Exception
	 */
	public BasePage<Map<String, Object>> selectAnchorConversionRateByPage(Map<String, Object> params, BasePage<Map<String, Object>> page) throws Exception;

	/**
	 * 查询首次进房排行榜
	 *
	 * @return
	 * @throws Exception
	 */
	public List<RankingListVO> selectFirstGetintoHousingRanking(Map<String, Object> map) throws Exception;

	/**
	 * 查询转换率排行榜
	 *
	 * @return
	 * @throws Exception
	 */
	public List<RankingListVO> selectConversionRateRanking(Map<String, Object> map) throws Exception;

	/**
	 * 查询主播排麦直播时长排行、主播个人直播时长排行
	 *
	 * @param timeType
	 * @param list
	 * @param type
	 * @return
	 * @throws Exception
	 */
	public List<Map<String, Object>> selectAnchorLiveTime(int timeType, List<String> list, int type) throws Exception;

	/**
	 * 查询自带粉排行
	 *
	 * @return
	 * @throws Exception
	 */
	public List<Map<String, Object>> selectAnchorByoFans(Map<String, Object> params) throws Exception;

	/**
	 * 统计业务员推广主播数
	 *
	 * @return
	 * @throws Exception
	 */
	public Integer countTaskAnchorNum(Map<String, Object> params) throws Exception;

	public Integer countTaskAnchorNumTenantCode(Map<String, Object> params, String tenantCode) throws Exception;
}
